<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
class PhotoController extends Controller
{
	/**
     * getIndex() 显示轮播图主页列表
     * 
     * @param   $count  int 	分页显示的条数
     * @param   $search string  搜索匹配的关键字
     * @param   $data   array   搜索分页并且查询
     * @return  返回后台轮播图列表首页
     */
    public function getIndex(Request $request){
    	// 查询数据并且分页
    	$count = $request -> input('count', 8);
    	$search = $request -> input('search', '');
    	// dd($count);
    	$data = DB::table('user_photo') ->where('photo_description','like','%'.$search.'%') ->paginate($count);
    	return view('admin.photo.index',['data'=>$data,'request'=>$request->all()]);
    }
    /**
     * getAdd() 添加轮播图页面
     * 
     * @param   
     * @param   
     * @param   
     * @return  返回后台轮播图添加页面
     */
    public function getAdd(){
    	return view('admin.photo.add');
    }
    /**
     * postInsert() 执行添加轮播图页面
     * 
     * @param   $photo_name  string  轮播图图片的名字
     * @param   $arr         array   压入数据库的数据
     * @param   $res         bool    sql语句返回值
     * @return  跳转后台轮播图主页路由
     */
    public function postInsert(Request $request){		
    	// 检测上传图片
    	if($request -> hasFile('photo_name')){
    		$file= $request -> file('photo_name');
    		 // 获取文件后缀名
	        $hz = $file -> getClientOriginalExtension();
	    	// 检测图片格式
	        $array = ['jpg','png','gif'];
	        if(!in_array($hz,$array,true)){
	        	return back() -> with('error','图片格式不符合要求');
	        }     
	        // 随机后缀名,并拼接文件后缀名
	        $photo_name = md5(time().rand(100000,999999)).'.'.$hz;
	        // 将文件上传至指定位置
	        $request -> file('photo_name') -> move('./web/images',$photo_name);
			// 拼接插入数据
		    $arr = $request -> only(['photo_link','photo_status','photo_description']);
	    	$arr['photo_createtime'] = date('Y-m-d H:i:s',time());  
	    	$arr['photo_name'] = $photo_name;
	    	$res = DB::table('user_photo') -> insert($arr);
	    	if($res){
	    		return redirect('/admin/photo/index')->with('success','添加成功');
	    	}else{
	    		return back() -> with('error','插入失败');
	    	}
	    	

	   	}else{
	        return back() -> with('error','请上传图片');
	    }	
	}
	/**
     * getEdit() 轮播图后台编辑页面
     * 
     * @param   $data  array  指定修改的那一条数据
     * @param   
     * @param   
     * @return  返回后台轮播图编辑页面视图
     */
	public function getEdit($id){
		$data = DB::table('user_photo') ->where('id',$id) ->first();
		return view('admin.photo.edit',['data'=>$data]);
	}
	/**
     * postDoedit() 执行编辑轮播图页面
     * 
     * @param   $photo_name  string  轮播图图片的名字
     * @param   $arr         array   压入数据库的数据
     * @param   $res1         bool    sql语句返回值
     * @return  跳转后台轮播图主页路由
     */
	public function postDoedit(Request $request){
		$arr = $request -> only(['photo_link','photo_status','photo_description']);
		$arr['photo_changetime'] = date('Y-m-d H:i:s',time()); 
		$id = $request ->input('id');
		// dd($arr);
		// 检测上传图片
    	if($request -> hasFile('photo_name')){
    		$file= $request -> file('photo_name');
    		 // 获取文件后缀名
	        $hz = $file -> getClientOriginalExtension();
	    	// 检测图片格式
	        $array = ['jpg','png','gif'];
	        if(!in_array($hz,$array,true)){
	        	return back() -> with('error','图片格式不符合要求');
	        }     
	        // 随机后缀名,并拼接文件后缀名
	        $photo_name = md5(time().rand(100000,999999)).'.'.$hz;
	        // 将文件上传至指定位置
	        $request -> file('photo_name') -> move('./web/images',$photo_name);			 
	    	$arr['photo_name'] = $photo_name;	    	 
	    	$res = DB::table('user_photo') ->where('id',$id) ->update($arr);
	    	if($res){
	    		return redirect('/admin/photo/index')->with('success','修改成功');
	    	}else{
	    		return back() -> with('error','修改失败1');
	    	}
	    	

	   	}else{
	   		$data = DB::table('user_photo') ->where('id',$id) ->first();
	   		$arr['photo_name'] = $data['photo_name'];
	    	$res1 = DB::table('user_photo') ->where('id',$id) ->update($arr);
	    	if($res1){
	    		return redirect('/admin/photo/index')->with('success','修改成功');
	    	}else{
	    		return back() -> with('error','修改失败2');
	    	}
	    }	
	}

	/**
     * getDelete() 轮播图后台删除方法
     * 
     * @param   $data  array  指定修改的那一条数据
     * @param   
     * @param   
     * @return  返回后台轮播图主页视图
     */
	public function getDelete($id){
		$res = DB::table('user_photo') ->where('id',$id) ->delete();
		if($res){
    		return redirect('/admin/photo/index')->with('success','删除成功');
    	}else{
    		return back() -> with('error','删除失败');
	    }
	}

	/**
     * getDelete() 轮播图后台多项删除方法
     * 
     * @param   $data  array  指定修改的那一条数据
     * @param   
     * @param   
     * @return  返回后台轮播图主页视图
     */
	public function postDelall(Request $request){
		$arr = $request -> only('id')['id'];
		$res = DB::table('user_photo') ->whereIn('id',$arr) ->delete();
		if($res){
    		return redirect('/admin/photo/index')->with('success','删除成功');
    	}else{
    		return back() -> with('error','删除失败');
	    }
	}
}